# print() 传入不同的数据,就打印出不同的内容
# 函数的参数,就是在调用函数的位置向函数内传递数据,并参与函数内部的运算或执行
# 通过传递参数的不同可以改变函数的执行结果

# 函数参数的作用:让代码更加灵活,让函数的复用率更高,提高开发效率
# 我们定义一个函数计算3+4的和
def sum1():
    print(3 + 4)


sum1()

print('--------------------------------')


# 如果我们又要计算2 + 3 的和 我们应该怎么办呢?
# 1. 可以再创建一个函数,输出2+3, 不推荐, 因为不能提高代码的复用率.
# 2. 可以给函数增加参数, 提高代码的复用率,增加代码的灵活度
# 格式: def func(参数1, 参数2, 参数3....)
# 定义函数
def func1(num1, num2):
    print(num1 + num2)


# 调用函数
func1(2, 3)  # 5
func1(4, 7)  # 11


# 此时,所有两个数值之间的加法运算,都可以使用该函数完成,代码复用率提高

# 函数定义位置书写的参数 num1, 和num2 只是形式正参加了运算,但是其实是一个变量名,所以我们称之为形参
# 函数调用位置书写的参数 2, 3 是传递到函数体内部,真正参加计算的数据,我们称之为实参.

# 注意: 给函数赋值时,所有的参数既不要多赋值,也不要漏赋值
# TypeError: func1() takes 2 positional arguments but 3 were given
# func1(1, 2, 3)
# TypeError: func1() missing 1 required positional argument: 'num2'
# func1(1)

print('--------------------------------')
# 练习:
# 创建一个函数，有一个参数 叫做n  通过传入n的数量决定我们要输出多少行横线
# 打印一行横线的方法 print（‘-’ * 30）

def print_lines(n):
    for i in range(n):
        print('-' * 30)


print_lines(5)
